/* 
 * File:   mapScreen.h
 * Author: cow
 *
 * Created on August 21, 2011, 2:02 PM
 */

#ifndef MAPSCREEN_H
#define	MAPSCREEN_H

//Includes---------------------------------------
#include "Screen.h"
#include "../cantrips/handlers.h"
#include <list>
#include <cairo/cairo.h>
using namespace std;
//Includes=======================================

//Defines----------------------------------------
#define mapEntItr list<mapableEntity*>::iterator
#define dataFile "./data/stale.dat"
namespace stale{
enum direction{
	up = 0,
	down,
	left,
	right
};
};
//Defines========================================

//Prototypes-------------------------------------
class gridScreen;
//Prototypes=====================================

//Definitions------------------------------------
class gridScreen : public screen{
public:
	//accesors----------
	int getLineWidth();
	int getLineHeight();
	//view manips------------
	void draw();
	//lines------------------
	void setScale(float scale);
	void setLines(int width, int height);
	void drawLines(bool lines);
	void setHighLinesDash(double* spacing, int arrSize);
	void setLineDash(double* spacing, int arrSize);
	void setHighlightLineSpacing(int spaceing);
	void setLineRGB(float R, float G, float B);
	void setHighlightLineRGB(float R, float G, float B);
private:
	//lines------------------
	bool drawlines;
	int lineWidth;
	int lineHeight;
	int highlightLine;
	double* highDash;
	int highDashSize;
	double* lowDash;
	int lowDashSize;
	//line colour------------
	float lowR;
	float lowG;
	float lowB;
	float highR;
	float highG;
	float highB;
};
//Definitions====================================
#endif	/* MAPSCREEN_H */